/**
 * @param field: string 需要查找的中文或字段
 * @param type: number 传入的是中文还是字段 0是中文 1是字段
 */
function fieldClass(field, type) {
    const objData = {
        法人: "legalPersonName",
        法定代表人: "legalPersonName",
        联系方式: "phoneNumber",
        企业联系方式: "phoneNumber",
        注册地址: "regLocation",
        经营范围: "businessScope",
        所属行业: "industry",
        行业: "industry",
        企业评分: "percentileScore", // 万分制
        人员规模: "staffNumRange",
        经营开始时间: "fromTime", // 时间戳
        法人类型: "type", // 1 人 2 公司
        股票名: "bondName",
        企业id: "id",
        是否是小微企业: "isMicroEnt", // 0不是 1是
        股票曾用名: "usedBondName",
        注册号: "regNumber",
        注册资本: "regCapital",
        企业名: "name",
        登记机关: "regInstitute",
        核准时间: "approvedTime", // 时间戳
        更新时间: "updateTimes", // 时间戳
        参保人数: "socialStaffNum",
        企业标签: "tags",
        纳税人识别号: "taxNumber",
        英文名: "property3",
        简称: "alias",
        组织机构代码: "orgNumber",
        企业状态: "regStatus",
        成立日期: "estiblishTime",
        股票类型: "bondType",
        经营结束时间: "toTime", // 时间戳
        实收注册资金: "actualCapital",
        企业类型: "companyOrgType",
        省份简称: "base",
        统一社会信用代码: "creditCode",
        曾用名: "historyNames", // historyNames:string  historyNameList:[]
        股票号: "bondNum",
        注册资本币种: "regCapitalCurrency",
        实收注册资本币种: "actualCapitalCurrency",
        邮箱: "email",
        网址: "websiteList",
        吊销日期: "revokeDate", // 时间戳
        吊销原因: "revokeReason",
        注销日期: "cancelDate",
        注销原因: "cancelReason",
        市: "city",
        区: "district",
        国民经济行业分类门类: "industryAll.category", // industryAll:{} 国民经济行业分类
        国民经济行业分类大类: "industryAll.categoryBig",
        国民经济行业分类中类: "industryAll.categoryMiddle",
        国民经济行业分类小类: "industryAll.categorySmall",
    };
    if (!type) {
        const keys = Object.keys(objData);
        if (keys.indexOf(field) === -1) {
            return "";
        }
        return objData[field] || "";
    } else {
        let result = [];
        for (let k in objData) {
            if (objData[k] === field) {
                result.push(k);
            }
        }
        return result;
    }
}

/**
 * @param indexs: [] 需要取值的索引
 * @param tableHead: [] 表头中文
 */
class SheetClass {
    constructor(indexs, tableHead) {
        this.indexs = indexs;
        this.tableHead = tableHead;
    }
    dealData(tableItem, apiData) {
        this.indexs.forEach((i) => {
            const fieldCh = this.tableHead[i];
            tableItem[i] = apiData[fieldClass(fieldCh, 0)] || "";
        });
    }
}

module.exports = {
    fieldClass,
    SheetClass,
};
